diff --git a/sympy/matrices/common.py b/sympy/matrices/common.py
index 379a2917aa..eb635349d8 100644
--- a/sympy/matrices/common.py
+++ b/sympy/matrices/common.py
@@ -1973,7 +1973,10 @@ def __div__(self, other):
 
     @call_highest_priority('__rmatmul__')
     def __matmul__(self, other):
-        return self.__mul__(other)
+        from sympy.matrices.matrices import MatrixBase
+        if not isinstance(other, MatrixBase):
+            raise ValueError("Scalar operands are not allowed, use '*' instead")
+        return self._eval_matrix_mul(other)
 
     @call_highest_priority('__rmul__')
     def __mul__(self, other):
@@ -2068,7 +2071,10 @@ def __radd__(self, other):
 
     @call_highest_priority('__matmul__')
     def __rmatmul__(self, other):
-        return self.__rmul__(other)
+        from sympy.matrices.matrices import MatrixBase
+        if not isinstance(other, MatrixBase):
+            raise ValueError("Scalar operands are not allowed, use '*' instead")
+        return other.__matmul__(self)
 
     @call_highest_priority('__mul__')
     def __rmul__(self, other):
